<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>CSS Test: CSSOM View scrollWidth and scrollHeight</title>
        <link rel="author" title="Robert O'Callahan" href="mailto:robert@ocallahan.org" />
        <link rel="help" href="http://www.w3.org/TR/cssom-view/#dom-element-scrollwidth" />
        <meta name="flags" content="dom" />
        <script src="/resources/testharness.js" type="text/javascript" />
        <script src="/resources/testharnessreport.js" type="text/javascript" />
        <style type="text/css"><![CDATA[
            #elemSimple, #elemOverflow, #elemNestedOverflow {
                border:1px solid black;
                overflow:hidden;
                width:200px;
                height:40px;
                padding-bottom:50px;
                padding-right:40px;
            }
            #elemSimple > div {
                background:yellow;
                width:60px;
                height:30px;
            }
            #elemOverflow > div {
                background:yellow;
                width:250px;
                height:150px;
            }
            #elemNestedOverflow > div {
                background:yellow;
                width:60px;
                height:30px;
            }
            #elemNestedOverflow > div > div {
                background:blue;
                width:250px;
                height:150px;
            }
        ]]></style>
    </head>
    <body>
        <noscript>Test not run - javascript required.</noscript>
        <div id="log" />
        <div id="elemSimple">
            <div />
        </div>
        <div id="elemOverflow">
            <div />
        </div>
        <div id="elemNestedOverflow">
            <div>
                <div />
            </div>
        </div>
        <script type="text/javascript"><![CDATA[
            var elemSimple = document.getElementById("elemSimple");
            var elemOverflow = document.getElementById("elemOverflow");
            var elemNestedOverflow = document.getElementById("elemNestedOverflow");

            test(function(){
                assert_equals(elemSimple.clientHeight, 90);
            }, "elemSimple.clientHeight is the height of the padding edge");

            test(function(){
                assert_equals(elemSimple.scrollHeight, 90);
            }, "elemSimple.scrollHeight is its clientHeight");

            test(function(){
                assert_equals(elemSimple.clientWidth, 240);
            }, "elemSimple.clientWidth is the width of the padding edge");

            test(function(){
                assert_equals(elemSimple.scrollWidth, 240);
            }, "elemSimple.scrollWidth is its clientWidth");

            test(function(){
                assert_equals(elemOverflow.clientHeight, 90);
            }, "elemOverflow.clientHeight is the height of the padding edge");

            test(function(){
                assert_equals(elemOverflow.scrollHeight, 200);
            }, "elemOverflow.scrollHeight is the height of its scrolled contents (including padding)");

            test(function(){
                assert_equals(elemOverflow.clientWidth, 240);
            }, "elemOverflow.clientWidth is the width of the padding edge");

            test(function(){
                assert_equals(elemOverflow.scrollWidth, 290);
            }, "elemOverflow.scrollHeight is the width of its scrolled contents (including padding)");

            test(function(){
                assert_equals(elemNestedOverflow.clientHeight, 90);
            }, "elemNestedOverflow.clientHeight is the height of the padding edge");

            test(function(){
                assert_equals(elemNestedOverflow.scrollHeight, 150);
            }, "elemNestedOverflow.scrollHeight is the height of its scrolled contents (ignoring padding)");

            test(function(){
                assert_equals(elemNestedOverflow.clientWidth, 240);
            }, "elemNestedOverflow.clientWidth is the height of the padding edge");

            test(function(){
                assert_equals(elemNestedOverflow.scrollWidth, 250);
            }, "elemNestedOverflow.scrollWidth is the width of its scrolled contents (ignoring padding)");

        ]]></script>
    </body>
</html>
